#pragma once

typedef const __code uint8_t layer_def_t[NUM_ROWS][NUM_COLS];

extern layer_def_t layers[4];

// called after the matrix is scanned
// determines the active layer basen on the states of FN keys (modifier and lock)
void set_active_layer(void);

// returns the keycode of the key at a position on the matrix in the active layer
uint8_t get_keycode(uint8_t row, uint8_t col);

// checks if the key with the given keycode is pressed in the active layout
bool is_pressed_keycode(uint8_t keycode);
